/*
 * @lc app=leetcode.cn id=27 lang=java
 *
 * [27] 移除元素
 */

// @lc code=start
class Solution {
    public int removeElement(int[] nums, int val) {
        int i = 0;
        for (int item : nums) {
            if (item != val) {
                nums[i++] = item;
            }
        }
        return i;
    }
}
// @lc code=end

// // 方法一：
// public int removeElement(int[] nums, int val) {
// int len = nums.length;
// int i = 0;
// for (int j = 0; j < len; j++) {
// if (nums[j] != val){
// nums[i++] = nums[j];
// }
// }
// return i;
// }
// Accepted
// 113/113 cases passed (0 ms)
// Your runtime beats 100 % of java submissions
// Your memory usage beats 15.71 % of java submissions (40.1 MB)

// // 方法二：
// public int removeElement(int[] nums, int val) {
// if (nums.length == 0)
// return 0;
// int i = 0;
// int j = nums.length - 1;
// while (i <= j) {
// if (nums[i] != val) {
// i++;
// } else if (nums[j] == val) {
// j--;
// } else {
// nums[i] = nums[j];
// i++;
// j--;
// }
// }
// return i;
// }